SGI has implemented the following extensions to OpenGL. Note that the
set of supported extensions varies from machine to machine; see below for
more information.
EEEEXXXXTTTT____aaaabbbbggggrrrr
extends the list of host-memory color formats. Specifically, it
provides a reverse-order alternative to image format RGBA. The ABGR
component order matches the cpack Iris GL format on big-endian
machines. For more information, see ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllGGGGeeeettttTTTTeeeexxxxIIIImmmmaaaaggggeeee,
ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD, and ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD.
SSSSGGGGIIIIXXXX____aaaassssyyyynnnncccc
provides a way to allow certain OpenGL commands to complete out-of-
order with respect to others. This extension does not by itself
enable asynchrony; it is a framework establishing functions for
bookkeeping and synchronization, into which specific further OpenGL
extensions can be inserted. Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems. For
more information, see ggggllllAAAAssssyyyynnnnccccMMMMaaaarrrrkkkkeeeerrrrSSSSGGGGIIIIXXXX, ggggllllFFFFiiiinnnniiiisssshhhhAAAAssssyyyynnnnccccSSSSGGGGIIIIXXXX,
ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDD, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDD, and ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDD.
defines an additional blending equation for ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT.
This equation is a simple logical combination of the source and
destination colors. For more information, see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
allows the blend equation to be changed using ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT and
introduces two new blend equations, one to produce the minimum color
components of the source and destination colors and one to produce
the maximum. For more information, see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
defines two additional blending equations for use with
ggggllllBBBBlllleeeennnnddddEEEEqqqquuuuaaaattttiiiioooonnnnEEEEXXXXTTTT. These new equations are similar to the default
blending equation, but produce the difference of its terms, rather
than the sum. Image differences are useful in many image processing
applications. For more information, see ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv,
ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
GGGGLLLL____CCCCAAAALLLLLLLLIIIIGGGGRRRRAAAAPPPPHHHHIIIICCCC____FFFFRRRRAAAAGGGGMMMMEEEENNNNTTTT____SSSSGGGGIIIIXXXX is enabled, fragment information is
also sent to the calligraphic interface. Supported only on
IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems. For more information, see ggggllllEEEEnnnnaaaabbbblllleeee and
ggggllllGGGGeeeetttt.
SSSSGGGGIIIIXXXX____cccclllliiiippppmmmmaaaapppp
introduces new filtering and memory management techniques for
handling extraordinarily large textures. Clipmaps provide many of
adds a 4x4 matrix stack and matrix multiplication to the pixel
transfer path. The color matrix operates on RGBA pixel components.
It can be used to reorder or duplicate color components, and to
implement simple color-space conversions. For more information, see
ggggllllGGGGeeeettttBBBBoooooooolllleeeeaaaannnnvvvv, ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv, and
defines a new RGBA-format color lookup table mechanism, and several
new lookup tables in the OpenGL pixel path. The new lookup tables
are treated as one-dimensional images with internal formats, like
texture images and convolution filter images. This allows the
tables to operate on a subset of the components of passing pixels.
(For example, a table with internal format GGGGLLLL____AAAALLLLPPPPHHHHAAAA modifies only
the A component of each passing pixel, leaving the R, G, and B
components untouched.) A small subset of this extension is
supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems; because
of this, the extension is not listed in the extensions string
returned by ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg. The full extension is supported on all
other systems. For more information, see ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeeSSSSGGGGIIII,
ggggllllCCCCoooolllloooorrrrTTTTaaaabbbblllleeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIII, and ggggllllGGGGeeeettttCCCCoooolllloooorrrrTTTTaaaabbbblllleeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIII.
adds 1- or 2-dimensional convolution operations to the pixel
transfer process. Pixel drawing, reading, and copying, as well as
texture image definition, are candidates for convolution. The
convolution kernels are themselves treated as 1- and 2-dimensional
images, which can be loaded from application memory or from the
framebuffer. A subset of this extension is supported on
RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems; the full extension
is supported on all other systems. For more information, see
introduces texture magnification filters that blend between the
level 0 image and a separately defined "detail" image. This detail
blending can be enabled for all color channels, for the alpha
channel only, or for the red, green, and blue channels only. It is
available only for 2D textures. Supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee,
RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems, on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems and on
OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems. For more information, see
ggggllllGGGGeeeettttIIIInnnntttteeeeggggeeeerrrrvvvv, ggggllllGGGGeeeettttFFFFllllooooaaaattttvvvv, and ggggllllGGGGeeeettttDDDDoooouuuubbbblllleeeevvvv.
ggggllllSSSSttttaaaarrrrttttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, and ggggllllSSSSttttooooppppIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX.
ggggllllFFFFrrrraaaaggggmmmmeeeennnnttttMMMMaaaatttteeeerrrriiiiaaaalllliiiivvvvSSSSGGGGIIIIXXXX, and ggggllllLLLLiiiigggghhhhttttEEEEnnnnvvvviiiiSSSSGGGGIIIIXXXX.
ggggllllSSSSttttaaaarrrrttttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllSSSSttttooooppppIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, and
modifies the behavior of ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllCCCCooooppppyyyyPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDD,
ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT and ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT,
such that when GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____SSSSGGGGIIIIXXXX is enabled the source image is
considered to be a field of an "interlaced" frame. That is, the
effective source image has height equal to twice the actual height
and every other row contains "transparent" pixels that do not affect
the corresponding destination pixels in the target image. For
modifies the behavior of ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllCCCCooooppppyyyyPPPPiiiixxxxeeeellllssss,
ggggllllCCCCooooppppyyyyTTTTeeeexxxxIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT and ggggllllCCCCooooppppyyyyTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT. When
GGGGLLLL____IIIINNNNTTTTEEEERRRRLLLLAAAACCCCEEEE____RRRREEEEAAAADDDD____IIIINNNNGGGGRRRR is enabled the pixels being read or copied
represent one field of an "interlaced" frame. The source image
height in the framebuffer is equivalent to twice the specified
height of the transfer. Every other row of the source pixel
rectangle is skipped, so that only source rows (0,2,4,...) affect
ggggllllSSSSttttaaaarrrrttttIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, ggggllllSSSSttttooooppppIIIInnnnssssttttrrrruuuummmmeeeennnnttttssssSSSSGGGGIIIIXXXX, and ggggllllEEEEnnnnaaaabbbblllleeee.
defines a mechanism to specify priorities for display lists. Some
machines have special high-performance display list memories; this
extension allows the user to tell the GL which display lists should
be stored in those memories. Supported on HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and MMMMaaaaxxxxiiiimmmmuuuummmm
IIIImmmmppppaaaacccctttt systems and on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy and OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems. For
more information, see ggggllllLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffSSSSGGGGIIIIXXXX, ggggllllLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiiSSSSGGGGIIIIXXXX,
ggggllllGGGGeeeettttLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvvSSSSGGGGIIIIXXXX and ggggllllGGGGeeeettttLLLLiiiissssttttPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvvSSSSGGGGIIIIXXXX.
provides a mechanism to antialias all primitives. The technique is
to sample all primitives multiple times at different locations
within each pixel (rather than just the pixel center). The color
sample values are resolved to a single, displayable color each time
a pixel is updated, so the antialiasing appears to be automatic at
the application level. Supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222,
and VVVVTTTTXXXX systems and on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems. For more
information, see ggggllllSSSSaaaammmmpppplllleeeeMMMMaaaasssskkkkSSSSGGGGIIIISSSS, ggggllllSSSSaaaammmmpppplllleeeePPPPaaaatttttttteeeerrrrnnnnSSSSGGGGIIIISSSS,
provides support for packed pixels in host memory. A packed pixel
is represented entirely by one unsigned byte, one unsigned short, or
one unsigned integer. The fields with the packed pixel are not
proper machine types, but the pixel as a whole is. Thus the pixel
storage modes, and their unpacking counterparts, all work correctly
with packed pixels. This extension is not supported on
RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems. For more
information, see ggggllllDDDDrrrraaaawwwwPPPPiiiixxxxeeeellllssss, ggggllllRRRReeeeaaaaddddPPPPiiiixxxxeeeellllssss, ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD,
provides support for rendering shadows using shadow maps. First the
application renders the scene from the point of view of the light
source, and copies the resulting depth buffer to a texture with
internal format GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT, GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT11116666____SSSSGGGGIIIIXXXX,
GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT22224444____SSSSGGGGIIIIXXXX, or GGGGLLLL____DDDDEEEEPPPPTTTTHHHH____CCCCOOOOMMMMPPPPOOOONNNNEEEENNNNTTTT33332222____SSSSGGGGIIIIXXXX. Next the
application renders the scene from the normal viewpoint. Then the
application enables the texture parameter GGGGLLLL____TTTTEEEEXXXXTTTTUUUURRRREEEE____CCCCOOOOMMMMPPPPAAAARRRREEEE____SSSSGGGGIIIIXXXX,
sets the texture comparison operator and texture matrix
appropriately, and re-renders the scene with 2D texturing enabled.
During this final rendering pass, the depth value generated by
iterating the _r texture coordinate is compared with the shadow map
stored in texture memory, and the results of the comparison indicate
whether the pixel being textured is in shadow. The filtered result
of the shadow comparisons can be blended with the pixel to darken
it. Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems. For more information,
see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
introduces texture magnification filters that sharpen the resulting
image by extrapolating from the level 1 image to the level 0 image.
Sharpening can be enabled for all color channels, for the alpha
channel only, or for the red, green, and blue channels only.
Supported on RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems and on
IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems. For more information, see
ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, and ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv.
SSSSGGGGIIIIXXXX____sssspppprrrriiiitttteeee
provides a mechanism that automatically rotates primitives to face
the viewer. Rotation about an axis is used for objects that are
roughly cylindrically symmetric, like trees. Rotation about a point
is used for objects that are roughly spherically symmetric, like
clouds or explosions. Supported only on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems.
For more information, see ggggllllSSSSpppprrrriiiitttteeeePPPPaaaarrrraaaammmmeeeetttteeeerrrrSSSSGGGGIIIIXXXX.
allows a contiguous portion of an already-existing texture image to
be redefined without affecting the remaining portion of the image or
any of the other state that describes the texture. There are three
new calls: ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee1111DDDDEEEEXXXXTTTT, ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee2222DDDDEEEEXXXXTTTT, and
ggggllllTTTTeeeexxxxSSSSuuuubbbbIIIImmmmaaaaggggeeee3333DDDDEEEEXXXXTTTT. A subset of this extension is available on
RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems, and the full
extension is available on all other systems. Refer to the man pages
for more details.
EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee
provides support for a variety of resolutions of color components in
texture images. That is, instead of treating a retained image as
having 1, 2, 3, or 4 components, it is treated as though it had a
specific format, such as GGGGLLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE____AAAALLLLPPPPHHHHAAAA, or just GGGGLLLL____AAAALLLLPPPPHHHHAAAA. This
extension also defines a robust method for applications to determine
what combinations of texture dimensions and resolutions are
supported by an implementation and it introduces a new texture
environment: GGGGLLLL____RRRREEEEPPPPLLLLAAAACCCCEEEE____EEEEXXXXTTTT. For more information, see
ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllTTTTeeeexxxxEEEEnnnnvvvvffff, ggggllllTTTTeeeexxxxEEEEnnnnvvvviiii, ggggllllTTTTeeeexxxxEEEEnnnnvvvvffffvvvv, and
ggggllllGGGGeeeettttTTTTeeeexxxxLLLLeeeevvvveeeellllPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv, ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, and
provides a variation in the texture clamping arithmetic which
results in sampling the border color rather than the average of the
edge and border colors. Supported on OOOOccccttttaaaannnneeee2222 VVVVPPPPrrrroooo systems. For
more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv and ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv.
allows 1D and 2D textures to be filtered using an application-
defined symmetric and separable filter with four samples per
dimension. In the most common 2D case, the filter is bicubic. This
filtering can yield better-quality images than mipmapping, and is
often used in image processing applications. Supported on
IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems. For more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr,
ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr, ggggllllTTTTeeeexxxxFFFFiiiilllltttteeeerrrrFFFFuuuunnnnccccSSSSGGGGIIIISSSS, and ggggllllGGGGeeeettttTTTTeeeexxxxFFFFiiiilllltttteeeerrrrFFFFuuuunnnnccccSSSSGGGGIIIISSSS.
supports named texture objects whose contents and parameters may be
changed after they are defined. (Contrast this with textures in
display lists, which cannot be modified after the display lists are
created.) For machines with special texture memories,
EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee____oooobbbbjjjjeeeecccctttt also provides simple texture memory management.
For more information, see ggggllllGGGGeeeennnnTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT, ggggllllDDDDeeeelllleeeetttteeeeTTTTeeeexxxxttttuuuurrrreeeessssEEEEXXXXTTTT,
adds scale, bias, and clamp operations to the texture pipeline.
These operations are applied to the filtered result of a texture
lookup, before that result is used in the texture environment
equations and before the texture color lookup table of
SSSSGGGGIIII____tttteeeexxxxttttuuuurrrreeee____ccccoooolllloooorrrr____ttttaaaabbbblllleeee, if that extension exists. Not supported on
RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems or on HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and
MMMMaaaaxxxxiiiimmmmuuuummmm IIIImmmmppppaaaacccctttt systems. For more information, see ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrrffffvvvv,
ggggllllTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrriiiivvvv, and ggggllllGGGGeeeettttTTTTeeeexxxxPPPPaaaarrrraaaammmmeeeetttteeeerrrr.
adds new texture internal formats beyond those defined by
EEEEXXXXTTTT____tttteeeexxxxttttuuuurrrreeee. The purpose of these new formats is to reorganize the
components of a texture into groups of components. This allows
better utilization of texture memory by subdividing the internal
representation of a texel into 1, 2, or 4 smaller texels.
For example on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems, an 8-bit luminance texture
would normally use a full 16 bits of texture memory for each texel,
but if the application chooses the GGGGLLLL____DDDDUUUUAAAALLLL____LLLLUUUUMMMMIIIINNNNAAAANNNNCCCCEEEE8888____SSSSGGGGIIIISSSS internal
format, then two 8-bit luminance textures can be packed into the
same space. When such a texture is active, the application must
select which of the two packed textures will be used for drawing.
Supported on IIIInnnnffffiiiinnnniiiitttteeeeRRRReeeeaaaalllliiiittttyyyy systems and on HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and MMMMaaaaxxxxiiiimmmmuuuummmm
IIIImmmmppppaaaacccctttt systems. For more information, see ggggllllTTTTeeeexxxxIIIImmmmaaaaggggeeee1111DDDD,
vertexes, normals, and colors are prespecified, and are used to
define a sequence of primitives (all of the same type) when a single
call is made to ggggllllDDDDrrrraaaawwwwAAAArrrrrrrraaaayyyyssssEEEEXXXXTTTT. A stride mechanism is provided so
that an application can choose to keep all vertex data staggered in
a single array, or sparsely in separate arrays. Single-array storage
generally will provide better performance.
This extension also supports the rendering of individual array
elements, each specified as an index into the enabled arrays.
For more information, see ggggllllAAAArrrrrrrraaaayyyyEEEElllleeeemmmmeeeennnnttttEEEEXXXXTTTT, ggggllllDDDDrrrraaaawwwwAAAArrrrrrrraaaayyyyssssEEEEXXXXTTTT,
ggggllllIIIInnnnddddeeeexxxxPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, ggggllllTTTTeeeexxxxCCCCoooooooorrrrddddPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, ggggllllEEEEddddggggeeeeFFFFllllaaaaggggPPPPooooiiiinnnntttteeeerrrrEEEEXXXXTTTT, and
As an alternative to parsing the extensions string, you can determine
which extensions are supported by examining the renderer string (to
determine which graphics subsystem is being used) and the version string
(to determine the release number of the software being used). For more
information, see ggggllllGGGGeeeettttSSSSttttrrrriiiinnnngggg.
On some machines an extension may be incompletely implemented, and
therefore its name will not appear in the extensions string. In such
cases the only way to determine if the extension can be used is to query
the renderer and version strings.
GLX also has been extended. Refer to ggggllllXXXXIIIInnnnttttrrrroooo for more information.
NNNNOOOOTTTTEEEESSSS
When an OpenGL application uses indirect rendering, additional instances
of Xsgi, the SGI X server, process show up under ps. The additional
processes are multiple threads of the X server, used to implement
indirect rendering.
Do not mix OpenGL and IrisGL calls from within a single process.
BBBBUUUUGGGGSSSS
Different OpenGL processes which render to the same window using direct
rendering will not share the software ancillary buffers on that window.
If an OpenGL program does a server grab using its X connection, then for
the duration of the grab it should not render OpenGL into any window that
the client doing the grab did not create. Otherwise a deadlock occurs.
The client is still able to do X rendering. This holds for both local
and remote rendering.
If the OpenGL DSO (libGL.so) is unloaded, by calling dlclose(), before
the X connection is closed (or before the application is shutdown), a
segv will occur. To get around this, call XXXXCCCClllloooosssseeeeDDDDiiiissssppppllllaaaayyyy before unloading
libGL.so.
ggggllllXXXXCCCCooooppppyyyyCCCCoooonnnntttteeeexxxxtttt does not work correctly for direct rendering contexts if
the source context is not the current context or, on most systems, if the
destination context has never been made current to any thread. For more
information, see ggggllllXXXXCCCCooooppppyyyyCCCCoooonnnntttteeeexxxxtttt.
On SSSSoooolllliiiidddd IIIImmmmppppaaaacccctttt, HHHHiiiigggghhhh IIIImmmmppppaaaacccctttt and MMMMaaaaxxxxiiiimmmmuuuummmm IIIImmmmppppaaaacccctttt systems, and on
RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee, RRRReeeeaaaalllliiiittttyyyyEEEEnnnnggggiiiinnnneeee2222, and VVVVTTTTXXXX systems, GGGGLLLLXXXX____BBBBUUUUFFFFFFFFEEEERRRR____SSSSIIIIZZZZEEEE is not
the sum of GGGGLLLLXXXX____RRRREEEEDDDD____SSSSIIIIZZZZEEEE, GGGGLLLLXXXX____GGGGRRRREEEEEEEENNNN____SSSSIIIIZZZZEEEE, GGGGLLLLXXXX____BBBBLLLLUUUUEEEE____SSSSIIIIZZZZEEEE, and
GGGGLLLLXXXX____AAAALLLLPPPPHHHHAAAA____SSSSIIIIZZZZEEEE for visuals with 12-bit RGBA components.
glXSwapBuffers does not work for double-buffered GLX pixel buffers.
On XXXXSSSS, XXXXZZZZ, EEEEllllaaaannnn, and EEEExxxxttttrrrreeeemmmmeeee systems, and IIIInnnnddddyyyy and XXXXLLLL systems,
ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr1111DDDDEEEEXXXXTTTT, ggggllllCCCCoooonnnnvvvvoooolllluuuuttttiiiioooonnnnFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, and
ggggllllSSSSeeeeppppaaaarrrraaaabbbblllleeeeFFFFiiiilllltttteeeerrrr2222DDDDEEEEXXXXTTTT, will skip pixels and/or rows when the pixel zoom
is set so that it minifies (i.e., -1 < zoom < 1).
Even though the SSSSGGGGIIIIXXXX____tttteeeexxxxttttuuuurrrreeee____ssssccccaaaalllleeee____bbbbiiiiaaaassss extension is implemented on XXXXSSSS,
XXXXZZZZ, EEEEllllaaaannnn, and EEEExxxxttttrrrreeeemmmmeeee systems, and on IIIInnnnddddyyyy and XXXXLLLL systems, it is not
possible to query GGGGLLLL____PPPPOOOOSSSSTTTT____TTTTEEEEXXXXTTTTUUUURRRREEEE____FFFFIIIILLLLTTTTEEEERRRR____BBBBIIIIAAAASSSS____RRRRAAAANNNNGGGGEEEE____SSSSGGGGIIIIXXXX and
GGGGLLLL____PPPPOOOOSSSSTTTT____TTTTEEEEXXXXTTTTUUUURRRREEEE____FFFFIIIILLLLTTTTEEEERRRR____SSSSCCCCAAAALLLLEEEE____RRRRAAAANNNNGGGGEEEE____SSSSGGGGIIIIXXXX. Doing so will result in a gl
error.
On XXXXSSSS, XXXXZZZZ, EEEEllllaaaannnn, and EEEExxxxttttrrrreeeemmmmeeee systems, and on IIIInnnnddddyyyy and XXXXLLLL systems, calling
ggggllllHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT, ggggllllRRRReeeesssseeeettttHHHHiiiissssttttooooggggrrrraaaammmmEEEEXXXXTTTT, ggggllllMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT, or ggggllllRRRReeeesssseeeettttMMMMiiiinnnnmmmmaaaaxxxxEEEEXXXXTTTT
between a ggggllllBBBBeeeeggggiiiinnnn and ggggllllEEEEnnnndddd will not generate a GGGGLLLL____IIIINNNNVVVVAAAALLLLIIIIDDDD____OOOOPPPPEEEERRRRAAAATTTTIIIIOOOONNNN
error as it should.
No locking of display list structures is done on behalf of indirect
OpenGL contexts that share display list spaces. Applications that use
such contexts should use their own mechanisms to ensure mutual exclusion
when defining or destroying display lists.
You may notice some discrepancies between the OpenGL Reference Manual
which is available through InSight and the man pages (i.e., the ones you
get using the "man gl..." command in a shell window). If so, the man
pages contain the correct, up to date, information.